// 编写平台差异的代码
export const Toast = function (msg, icon) {
  return new Promise((resolve, reject) => {
    uni.showToast({
      icon: icon || "none",
      title: msg,
      success() {
        resolve();
      },
      fail() {
        reject();
      },
    });
  });
};

// 对Vant-ui的Dialog进行hack
const DialogHack = function ({
  title,
  message,
  confirmButtonText,
  showCancelButton,
  cancelButtonText,
  cancelButtonColor,
  confirmButtonColor,
}) {
  return new Promise((resolve, reject) => {
    uni.showModal({
      title: title || "提示",
      content: message,
      confirmText: confirmButtonText || "确认",
      showCancel: showCancelButton,
      cancelText: cancelButtonText || "取消",
      cancelColor: cancelButtonColor || "#333333",
      confirmColor: confirmButtonColor || "#FF3F54",
      success(res) {
        if (res.confirm) {
          resolve();
        } else {
          reject();
        }
      },
      fail() {
        reject();
      },
    });
  });
};
DialogHack.confirm = function (options = {}) {
  options.showCancelButton = true;
  return DialogHack(options);
};
DialogHack.alert = function (options = {}) {
  options.showCancelButton = false;
  return DialogHack(options);
};
export const Dialog = DialogHack;

// 模拟v-show isShow条件不成立时返回display:none的样式
// 示例 :class="[$vShow(!isGetCode)]"
export const vShow = function (isShow) {
  return isShow ? "" : "v-hide";
};

Date.prototype.Format = function (fmt) {
  //author: meizz
  var o = {
    "M+": this.getMonth() + 1, //月份
    "d+": this.getDate(), //日
    "h+": this.getHours(), //小时
    "m+": this.getMinutes(), //分
    "s+": this.getSeconds(), //秒
    "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    S: this.getMilliseconds(), //毫秒
  };
  if (/(y+)/.test(fmt))
    fmt = fmt.replace(
      RegExp.$1,
      (this.getFullYear() + "").substr(4 - RegExp.$1.length)
    );
  for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt))
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
      );
  return fmt;
};
